package management;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 课程类：存储课程基本信息，关联该课程的所有成绩
 */
public class Course implements Serializable {
    private static final long serialVersionUID = 2L;
    
    private String courseId;    // 课程编号（唯一标识）
    private String name;        // 课程名称（用String处理）
    private int credit;         // 学分
    // 新增：关联该课程的所有成绩，体现“课程-成绩”的1:N关系
    private List<Score> courseScores = new ArrayList<>();

    // 构造方法
    public Course(String courseId, String name, int credit) {
        this.courseId = courseId;
        this.name = name;
        this.credit = credit;
    }

    // 新增：添加课程的成绩（同步维护关联关系）
    public void addCourseScore(Score score) {
        this.courseScores.add(score);
    }

    // Getter（含新增的成绩列表）
    public String getCourseId() { return courseId; }
    public String getName() { return name; }
    public int getCredit() { return credit; }
    public List<Score> getCourseScores() { return courseScores; }

    // 重写toString：包含课程关联的成绩数量
    @Override
    public String toString() {
        return "课程编号：" + courseId + " | 课程名称：" + name + " | 学分：" + credit + 
               " | 选课人数：" + courseScores.size();
    }
}
